package com.yinshan.dialog.utils;

import android.graphics.Color;

import cn.cloudcore.iprotect.CEditText;
import cn.cloudcore.iprotect.CPayEditText;
import cn.cloudcore.iprotect.plugin.CEditTextAttrSet;

public class AttrsUtils {
    private static final String TAG = "NumKeyDialog";
    static public String modulus_app = "";

    static public void setPublicKey(String publicKey) {
        if (publicKey.length() > 64) {
            modulus_app = publicKey.substring(0, 64) + "," + publicKey.substring(64);
        }
    }

    static public CEditTextAttrSet getQueryAttrSet(String name) {
        CEditTextAttrSet attrSet = new CEditTextAttrSet();

        // 每个密码框的名字不能相同
        attrSet.name = name;

        // 输入框内容颜色
        attrSet.textColor = Color.BLACK;

        // 键盘式样，全键盘 or 数字键盘
        attrSet.softkbdType = CEditTextAttrSet.SOFT_KBD_QWERTY;
        // attrSet.softkbdType = CEditTextAttrSet.SOFT_KBD_NUMBER;

        // 键盘上方是否有输入框
        // attrSet.softkbdView = CEditTextAttrSet.SOFT_KBD_NO_EDITTEXT;
        attrSet.softkbdView = CEditTextAttrSet.SOFT_KBD_WITH_EDITTEXT;

        // 全键盘初始显示的键盘： 小写、大写、第一页符号、第二页符号。
        attrSet.softkbdStype = CEditTextAttrSet.SOFT_KBD_QWERTY_ALPHA_LOWER;
        // attrSet.softkbdStype = CEditTextAttrSet.SOFT_KBD_QWERTY_ALPHA_UPPER;
        // attrSet.softkbdStype = CEditTextAttrSet.SOFT_KBD_QWERTY_SYMBOL_1;
        // attrSet.softkbdStype = CEditTextAttrSet.SOFT_KBD_QWERTY_SYMBOL_2;

        // 点击按键是否有变化
        attrSet.softkbdMode = CEditTextAttrSet.SOFT_KBD_MODE_KDOWN_CHANGE;
        // attrSet.softkbdMode = CEditTextAttrSet.SOFT_KBD_MODE_KDOWN_NOCHANGE;

        // 点击按键有反应时，全键盘是否有冒泡效果
        // attrSet.softkbdMode = CEditTextAttrSet.SOFT_KBD_MODE_KDOWN_NOPOP;

        // 全键盘切换模式： 字母与符号切换，字母与数字切换，字母、符号、数字切换。
        attrSet.switchMode = CEditTextAttrSet.SOFT_KBD_SWITCH_BETWEEN_ALPHA_SYMBOL;
        // attrSet.switchMode  = CEditTextAttrSet.SOFT_KBD_SWITCH_BETWEEN_ALPHA_NUMBER;
        // attrSet.switchMode  = CEditTextAttrSet.SOFT_KBD_SWITCH_ALPHA_SYMBOL_NUMBER;

        attrSet.kbdRandom = true;       // 键盘按钮是否乱序

        /* 两种乱序模式：
               全键盘按行乱序，数字键盘随机乱序
               只数字键盘乱序
         */
        //attrSet.kbdRandomType = CEditTextAttrSet.SOFT_KBD_RANDOM_TYPE_ALL;
        attrSet.kbdRandomType = CEditTextAttrSet.SOFT_KBD_RANDOM_TYPE_NUMBER;

        attrSet.clearWhenOpenKbd = false;   // 打开时是否清楚以前输入的内容
        attrSet.kbdVibrator = true;         // 是否震动
        attrSet.contentType = 0;            // 见文档

        attrSet.maxLength = 20;
        attrSet.minLength = 8;

        attrSet.maskChar = '\u2022';             // 输入框显示的掩码内容
        attrSet.accepts = "[!-~]+";         // 允许输入的内容

        return attrSet;
    }

    static public CEditTextAttrSet getNumberAttrSet(String name) {
        CEditTextAttrSet attrSet = new CEditTextAttrSet();

        // 每个密码框的名字不能相同
        attrSet.name = name;

        // 输入框内容颜色
        attrSet.textColor = Color.BLACK;

        // 键盘式样，全键盘 or 数字键盘
        // attrSet.softkbdType = CEditTextAttrSet.SOFT_KBD_QWERTY;
        attrSet.softkbdType = CEditTextAttrSet.SOFT_KBD_NUMBER;
        //attrSet.softkbdType = CEditTextAttrSet.SOFT_KBD_MONEY;

        // 键盘上方是否有输入框
        attrSet.softkbdView = CEditTextAttrSet.SOFT_KBD_NO_EDITTEXT;
        // attrSet.softkbdView = CEditTextAttrSet.SOFT_KBD_WITH_EDITTEXT;

        // 全键盘初始显示的键盘： 小写、大写、第一页符号、第二页符号。
        attrSet.softkbdStype = CEditTextAttrSet.SOFT_KBD_QWERTY_ALPHA_LOWER;
        // attrSet.softkbdStype = CEditTextAttrSet.SOFT_KBD_QWERTY_ALPHA_UPPER;
        // attrSet.softkbdStype = CEditTextAttrSet.SOFT_KBD_QWERTY_SYMBOL_1;
        // attrSet.softkbdStype = CEditTextAttrSet.SOFT_KBD_QWERTY_SYMBOL_2;

        // 点击按键是否有变化
        // attrSet.softkbdMode = CEditTextAttrSet.SOFT_KBD_MODE_KDOWN_CHANGE;
        attrSet.softkbdMode = CEditTextAttrSet.SOFT_KBD_MODE_KDOWN_NOCHANGE;

        // 点击按键有反应时，全键盘是否有冒泡效果
        // attrSet.softkbdMode = CEditTextAttrSet.SOFT_KBD_MODE_KDOWN_NOPOP;

        // 全键盘切换模式： 字母与符号切换，字母与数字切换，字母、符号、数字切换。
        attrSet.switchMode = CEditTextAttrSet.SOFT_KBD_SWITCH_BETWEEN_ALPHA_SYMBOL;
        // attrSet.switchMode  = CEditTextAttrSet.SOFT_KBD_SWITCH_BETWEEN_ALPHA_NUMBER;
        // attrSet.switchMode  = CEditTextAttrSet.SOFT_KBD_SWITCH_ALPHA_SYMBOL_NUMBER;

        attrSet.kbdRandom = true;       // 键盘按钮是否乱序

        /* 两种乱序模式：
               全键盘按行乱序，数字键盘随机乱序
               只数字键盘乱序
         */
        //attrSet.kbdRandomType = CEditTextAttrSet.SOFT_KBD_RANDOM_TYPE_ALL;
        // attrSet.kbdRandomType = CEditTextAttrSet.SOFT_KBD_RANDOM_TYPE_NUMBER;

        attrSet.clearWhenOpenKbd = true;   // 打开时是否清楚以前输入的内容
        attrSet.kbdVibrator = true;         // 是否震动
        attrSet.contentType = 0;            // 见文档

        attrSet.maxLength = 6;
        attrSet.minLength = 6;

        attrSet.maskChar = '*';             // 输入框显示的掩码内容
        attrSet.accepts = "[!-~]+";         // 允许输入的内容

        return attrSet;
    }

    static public void setOneLayerCipher(CPayEditText cEditText, String publicKey) {
        if (publicKey.length() > 64) {
            modulus_app = publicKey.substring(0, 64) + "," + publicKey.substring(64);
        }
        cEditText.publicKeyAppModulus(modulus_app);   // 一次加密  -- 云核标准数字信封
    }

    static public void setOneLayerCipher(CEditText cEditText, String publicKey) {
        if (publicKey.length() > 64) {
            modulus_app = publicKey.substring(0, 64) + "," + publicKey.substring(64);
        }
        cEditText.publicKeyAppModulus(modulus_app);   // 一次加密  -- 云核标准数字信封
    }
}
